昨天帶大家建立完model以及需要的欄位後,今天要來換講建立權限的部分
建立完model後,要在ir.model.access.csv建立model的權限,使用者可否對model進行新增、刪除、修改、查詢的動作。
範例如下:
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_idx_repair,access_idx_repair,model_idx_repair,base.group_user,1,1,1,1
access_idx_repair_detail,access_idx_repair_detail,model_idx_repair_detail,base.group_user,1,1,1,1
'model_' + model名稱
來命名如果model需要對權限做其他設定,可以在security.xml來做設定
範例如下:
<record id="module_category_repair" model="ir.module.category">
<field name="name">維修管理系統</field>
</record>
<record id="group_employee" model="res.groups">
<field name="name">主檔-員工資料</field>
<field name="category_id" ref="module_category_repair"/>
</record>
<record id="group_product_contract" model="res.groups">
<field name="name">主檔-客戶產品</field>
<field name="category_id" ref="module_category_repair"/>
</record>
在畫面上的呈現如下:
根據範例可以發現權限中有兩種model可以設定,ir.module.category為類別,res.groups為群組,群組會隸屬於類別之下。需建立一個類別後再新增群組,方便日後進行管理。
記得權限建立好後需要將上面兩個檔案加到__manifest__.py
的data中,才可在系統中看到新增的權限。
{
'name': 'odoo14 idx repair',
'version': '14.0.1',
'category': 'Uncategorized',
'summary': '維修管理模組',
'description': '''
2023鐵人賽-維修管理模組
====================
''',
'author': "Eileen",
'depends': ['base'],
'data': [
'security/security.xml',
'security/ir.model.access.csv',
],
'installable': True,
'application': True,
'auto_install': False,
}